1. Field of the Invention
The present invention relates to a color converting apparatus and method. In particular, to a device and method suitable for accurately converting a color signal represented in a different formats by different devices so that a color image from one device may be accurately reproduced by a different device.
2. Description of the Related Art
In recent years, printers, facsimile machines, and related devices have acquired the ability to output data in full color and have become widely available. As a result of this growth in color reproduction devices a need has developed for sharing color picture images among different devices. However, since different devices reproduce images differently, when color picture images are shared with different devices the colors of a transmitted picture may be different from the colors of a picture that are received at the reception site.
The reason for this color mismatch is that in devices such as printers and scanners, colors are handled as color signals comprising a CMY signal and an RGB signal. For example, in a printer of which the minimum value and maximum a color signal is equal to a value of 0 to 255, respectively, all output colors are represented by a combination of values ranging from 0 to 255 of the CMY signal. In this case, even if the same value of the CMY signal is input, the color that is printed depends on the type of the printer. Thus, the method of representing colors with the CMY signal is device-dependent.
In the prior art, a color signal in the device-dependent format is represented in an intermediate format that is device-independent. Using this method, color reproducibility is obtained in different devices.
For example, an L*a*b* signal and an XYZ signal have been used as a color representation method in which colors are represented in a device-independent format. Colors represented in these formats are uniquely defined. Thus, these formats are used as intermediate color representing systems and colors are converted among different devices.
In reality, a picture that is input from a scanner and represented with an RGB signal is converted into a picture represented with an L*a*b* signal. Thereafter, the L*a*b* signal is converted into a CMY signal. The CMY signal is output to a printer. When the representing formats of these color signals are accurately converted, colors can be matched between devices.
To convert the format of a color signal, the value of a color signal in one format must be converted into the appropriate value of a color signal in another format. In order to convert the value of a color signal, a color conversion table that represents the relation between colors in respective color device is used. In this color signal converting method using a color conversion table, when a color signal registered in the color conversion table is converted, the relationship of colors registered in the color conversion table is used. When converting a color signal that does not exist in the color conversion table, a color signal listed in the color conversion table is interpolated to provide a corresponding color signal.
FIG. 38 is a schematic diagram for a two-dimensional registering method of a conventional color conversion table in a color space in the prior art.
In FIG. 38 shows L*a*b* values at grid points P1 to P16 in an L*a*b* space corresponding to CMY values at points Q1 to Q16 in a CMY space. The relationship between L*a*b* grid points is listed in the color conversion table. Assuming that CMY values at points Q1, Q2, Q5, Q9, and Q13 are out of the color reproducible range of the device, CMY values at points Q1', Q2', Q5', Q9', and Q13'that are in the color reproducible range of the device are substituted for points Q1, Q2, 05, Q9, and Q13, respectively. The substituted CMY values are then registered to the color conversion table.
This color converting method using the conventional color conversion table with numeric values will now be discussed in further detail. In this example, the printer or other related device has a color conversion (CMY values) in the color reproducible range from 0 to 255 (from an L*a*b* signal to a CMY signal). However, it should be noted that the device may be other than a printer and that a color signal other than the L*a*b* signal and CMY signal may be used.
As shown in FIG. 39, a table depicting the structure of a conventional color conversion table is provided. The color conversion table shows the relation between an L*a*b* color signal and a CMY color signal. With the color conversion table, the L*a*b* color signal can be converted into the CMY color signal in the color reproducible range of the printer.
In FIG. 39, the relation between the L*a*b* color signal and the CMY color signal in the color reproducible range of the printer is 0.ltoreq.L*.ltoreq.100, -128.ltoreq.a*.ltoreq.128, and -128.ltoreq.b*.ltoreq.128, where the values of the L* signal are discretely registered at intervals of 12.5 and the values of the a* signal and b* signal are discretely registered at intervals of 32. This occurs because all values cannot be listed in the color conversion table. In the color conversion table shown in FIG. 39, L*a*b* values are distributed at equal intervals.
Thus, CMY values corresponding to L*a*b* values registered in the color conversion table can be directly obtained from the color conversion table.
CMY values corresponding to L*a*b* values that are not in the color conversion table are obtained by interpolation calculations relating L*a*b values and CMY values registered in the color conversion table. In this case, when L*a*b* values are regularly distributed and registered in the color conversion table, interpolation calculations can be easily performed.
When an L*a*b* value equal to (0, -128, -64) is input, since it has been registered in the color conversion table shown in FIG. 39, a CMY value equal to (255, 240, 253) corresponding to the L*a*b* value of (0, -128, -64) can be directly obtained with reference to the color conversion table shown in FIG. 39.
However, when an L*a*b* value equal to (1, -128, -64) is input, since it has not been registered in the color conversion table shown in FIG. 39, a CMY value corresponding to the L*a*b* value of (1, -128, -64) is obtained by interpolating a CMY value corresponding to the L*a*b* value equal to (1, -128, -64).
In the conventional color conversion table, CMY values registered therein are values in the range of the color signal of the device in use. When the color conversion table is used for a printer that handles CMY values ranging from 0 to 255, CMY values corresponding to L*a*b* values out of the color range of the printer are substituted to CMY values ranging from 0 to 255 and then registered to the color conversion table.
In the case when L* values represent a black color and the printer reproduces black colors above a value of 18 and cannot output darker colors, CMY values that correspond to the color reproducible represented by L*a*b* values in the color range of the printer are registered. For example, a CMY value=(228, 224, 208) is registered corresponding to an L*a*b* value=(25, 0, 0).
Colors represented by L*a*b* values out of the color range of the printer are substituted with CMY values that can be reproduced by the printer and are registered in the color conversion table. For example, if a CMY value corresponding to an L*a*b* value equal to (12.5, 0, 0) is desired, a black color of an L* value equal to 12.5 cannot be produced as indicated above. Therefore, the darkest CMY value is selected corresponding to a CMY value equal to (255, 255, 255) is registered.
When an L*a*b* value which is not listed in the color conversion table is converted into a CMY value, a plurality of L*a*b* values in the vicinity of the L*a*b value to be converted are selected corresponding to the relation between L*a*b* values and CMY values registered in the color conversion table. The selected L*a*b* values are then interpolated and a value determined. For further information on interpolation methods, please refer to "High Accuracy Color Conversion with Flexible UCR (translated title)", Japan Hard Copy Proceedings, 1994, pp. 177-180.
The interpolation method of a color signal using the conventional color conversion table will be described with reference to actual values.
In the case that a color signal is converted by interpolating calculations with the conventional color conversion table, when values registered in the color conversion table are accurate, almost good color converted results can be obtained in the color range of the device by the interpolating calculations.
In this example, two pieces of data are provided as illustration. The first has an L*a*b* value equal to (25, 0, 0) and the second an L*a*b* value equal to (37.5, 0, 0) that have been registered in the color conversion table shown in FIG. 39. A CMY value corresponding to an L*a*b* value equal to (31.25, 0, 0), that has not been registered in the color conversion table shown in FIG. 39, is obtained by interpolation calculations. When many colors are involved a CMY value is calculated by a three-dimensional interpolation.
Using interpolation calculations a color at the position of the CMY signal corresponding to the position of the L*a*b* signal is obtained. Thus, the process for obtaining a CMY value corresponding to the intermediate L*a*b* value between an L*a*b* value equal to (25, 0, 0) and an L*a*b* value equal to (37.5, 0, 0) obtains a CMY value equal to (228, 224, 208) corresponding to an L*a*b* value equal to (25, 0, 0) and a CMY value equal to (182, 185, 161) corresponding to an L*a*b* value equal to (37.5, 0, 0) and obtains the intermediate CMY value between the CMY value equal to (228, 224, 208) and the CMY value equal to (182, 185, 161).
Thus, the interpolated result produces a CMY value equal to (205, 204.5, 184.5). Therefore, the converted result of a CMY signal corresponding to the L*a*b* value equal to (31.25, 0, 0) that has not been registered in the color conversion table is a CMY value equal to (205, 204.5, 184.5).
When the characteristics of the printer are not remarkably irregular, the interpolated result is usually correct. In other words, when the relation of colors registered in the color conversion table are accurate, values obtained through interpolation are also accurate.
In the conventional color conversion table, a color that cannot be reproduced by the device is substituted with the closest color thereto that can be reproduced by the device and this substitution is registered in the color conversion table. When only with referring to the color conversion table, it is difficult to determine whether an input L*a*b* value is reproducible by the device. To solve this problem, an identifier that represents the color range of the device is associated to an L*a*b* value that is distributed in a grid shape (refer to "The ICC Profile Specifications Version 3.3"). Alternatively, a locus of a color range in a particular length L is registered as a boundary descriptor so as to determine whether a particular L*a*b* value is in the color range of the device.
However, when the conventional color conversion table is used a problem is encountered since colors at the boundaries of the color range of the device cannot be accurately interpolated. These colors at the boundaries of the color range of the device would include light colors, very dark colors, and very bright colors.
As shown in FIG. 38, when a CMY value corresponding to a point R in the vicinity of the boundary of the color range in the L*a*b* space is obtained, since the CMY value corresponding to the point R has not been registered in the color conversion table, interpolation calculations are performed. In the interpolation calculations, CMY values corresponding to grid points P2, P3, P6, and P7 that surround point R are obtained from the color conversion table. The CMY values are weighted in order to determine the CMY value corresponding to the point R. In this case, although the CMY value corresponding to the grid point P2 is actually a CMY value corresponding to the point Q, the CMY value is substituted with a CMY value corresponding to the point Q'and registered in the color conversion table. Further, although the real CMY value corresponding to the point R is a CMY value corresponding to the point S, a CMY value corresponding to the point S'is calculated. Consequently, a CMY value that is different from the real CMY value is output and the true color desired is not reproduced.
The case that an L*a*b* value to be interpolated is present in the vicinity of the boundary of the color range will be described with actual numeric values registered in the color conversion table.
It is assumed that the printer in question can output dark colors above an L*a*b* value equal to (18, 0, 0). In this case, as shown in FIG. 39, since the printer cannot output a color corresponding to an L*a*b* value equal to (12.5, 0, 0), a CMY value equal to (255, 255, 255) which is the darkest color the printer can reproduce is registered in the color conversion table.
In this case, a CMY color signal corresponding to an L*a*b* value equal to (18.75, 0, 0) (the intermediate value of an L*a*b* value equal to (12.5, 0, 0) and an L*a*b* value equal to (25, 0, 0)) is obtained by interpolation calculations.
As described above, since the printer is limited to colors having an L*a*b* value equal to (18, 0, 0), when a CMY value=(252, 253, 235) is designated, the printer can output a color of an L*a*b* value=(18.75, 0, 0). When a printer that can print colors of up to an L*a*b* value=(18, 0, 0) prints a color of an L*a*b* value=(18.75, 0, 0), each element of the CMY value becomes almost a value of 255.
Thus, it is preferable to calculate a CMY value equal to (252, 253, 235) as the interpolated result of the L*a*b* value equal to (18.75, 0, 0).
However, when a CMY value equal to (255, 255, 255) corresponding to an L*a*b* value equal to (12.5, 0, 0) and a CMY value equal to (228, 224, 208) corresponding to an L*a*b* value equal to (25, 0, 0) are averaged using the color conversion table shown in FIG. 39 the results are inaccurate. The results received are a CMY value corresponding to the intermediate L*a*b* value equal to (18.75, 0, 0), and a CMY value=((228+255)/2, (224+255)/2, (208+255)/2)=(241.5, 239.5, 231.5) which substantially deviate from the real value.
In the conventional color conversion table, although the L*a*b* value equal to (12.5, 0, 0) corresponds to a CMY value out of the color range of the device, a CMY value at the boundary of the color range is registered. Thus, when the interpolating calculations are performed with these two colors, a color in the vicinity of the boundary of the color range is calculated as a color inside the color range.
With respect to the conventional method for determining whether a particular color is in the color range of the device or out of the color range of the device, when an identifier associated with a grid point is used, the color range cannot be determined with higher resolution than the intervals of grid points.
In the conventional method in which loci are registered corresponding to respective hues, to use loci that have been divided and registered corresponding to respective hues, complicated calculations for obtaining hues (trigonometric function) are required.
Therefore, problems are encountered in the prior art relating to the accuracy of color reproduction among different devices when the colors are at the boundaries of the reproducible range of the device. Interpolation of colors at these boundaries is also a problem since the results may be inaccurate and cause further inaccuracy when determining the values of other colors by means of interpolation. In addition, the conventional method is limited in its accuracy to the intervals of the grid points and the when determining hues by using loci requires considerable processing due to the math involved.